# !/usr/bin/env python
# _*_ coding:utf-8 _*_
import json

from django_redis import get_redis_connection

from utils.cookiesecret import CookieSecret


def merge_cart_cookie_to_redis(request, user, response):
    # 1.去cookie 购物车数据 2
    cookie_str = request.COOKIES.get('carts')

    # 2.判断 有没有 没有 直接 return
    if not cookie_str:
        return response

    cookie_dict = CookieSecret.loads(cookie_str)

    # 3.取 redis所有的 购物车 10个
    redis_client = get_redis_connection('carts')
    client_data = redis_client.hgetall(user.id)
    redis_dict = {int(data[0].decode()): json.loads(data[1].decode()) for data in client_data.items()}

    # 4.合并  1.循环比对 2. dict update()
    redis_dict.update(cookie_dict)

    # 5.修改redis的所有数据覆盖
    for sku_id in redis_dict.keys():
        redis_client.hset(user.id, sku_id, json.dumps(redis_dict[sku_id]))

    # 删除cookie的数据
    response.delete_cookie('carts')

    # 6.返回响应
    return response
